/**
 * 获取日期，如：2022-12-09
 * @param {String} type:返回加或减去多少的时间
 * @param {Number} data:时间戳
 * @param {Boolean} notYear:若传 true 则不要年份
 */
export function dateLimit(type, data, notYear) {
	let date = '',
		showStr = '';
	if(data) {
		date = data;
	}else {
		date = new Date();
	}
	let year = date.getFullYear();
	let month = date.getMonth() + 1;
	let day = date.getDate();
	if (type === 'start') {
		year = year + 0;
	} else if (type === 'end') {
		// year = year + 1;
		// month = month + 1;
		day = day + 7;
	} else if(type === 'oldYear1') {
		year = year - 1;
	}
	month = month > 9 ? month : '0' + month;
	day = day > 9 ? day : '0' + day;
	if(notYear) {
		showStr = `${month}.${day}`;
	}else {
		showStr = `${year}-${month}-${day}`;
	}
	return showStr;
}

/**
 * 打开地图导航
 * @param {Number} latitude: 纬度
 * @param {Number} longitude: 经度
 */
export function mapNavigation(latitude, longitude, name, address) {
	uni.getLocation({
		type: 'wgs84', //返回可以用于uni.openLocation的经纬度
		success:res => {// 用户允许获取定位
			if (res.errMsg == "getLocation:ok") {
				uni.openLocation({
					latitude,// 传入你要去的纬度
					longitude,// 传入你要去的经度
					name,
					address,// 传入你要去的地址信息 不填则为空
					success: function() {
						console.log('success');
					}
				});
			}
		},
		fail: function(err) {// 用户拒绝获取定位后 再次点击触发
			console.log(err)
			if (err.errMsg == "getLocation:fail auth deny") {
				uni.showModal({
					title: '提示', confirmColor: '#99c043',
					content: '检测到您没打开获取信息功能权限，是否去设置打开？',
					success: (res2) => {
						if (res2.confirm) {
							uni.openSetting({
								success: (res2) => {
									console.log('确定');
								}
							})
						} else {
							console.log('取消');
							return false;
						}
					}
				})
			}
		}
	});
}

/**
 * 获取相对应的是星期几
 * @param {Number} value:.getDay()获得的数字转为字符串
 */
export function numTurnDayToday(value) {
	if(value == 0) {
		return '日';
	}else if(value == 1) {
		return '一';
	}else if(value == 2) {
		return '二';
	}else if(value == 3) {
		return '三';
	}else if(value == 4) {
		return '四';
	}else if(value == 5) {
		return '五';
	}else if(value == 6) {
		return '六';
	}
}

/**
 * 获取我的经纬度与ta的经纬度间距
 * @param {Number} myLa: 我的纬度
 * @param {Number} myLo: 我的经度
 * @param {Number} itLa: ta的纬度
 * @param {Number} itLo: ta的经度
 */
export function distanceKmFun(myLa, myLo, itLa, itLo) {
	if(!myLa || !myLo || !itLa || !itLo) return '';
	let radLat1 = myLa * Math.PI / 180.0;
	let radLat2 = itLa * Math.PI / 180.0;
	let radLatDiffer = radLat1 - radLat2;
	let radLonDiffer = myLo * Math.PI / 180.0 - itLo * Math.PI / 180.0;
	let newNum = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(radLatDiffer / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(radLonDiffer / 2), 2)));
	newNum = newNum * 6378.137;
	newNum = (Math.round(newNum * 10000) / 10000).toFixed(2);
	return newNum + 'km';
}

/**
 * 返回半小时后的时分 如 "2023-02-24 18:30"
 * @param {String} date: 如 "2023-02-24 18:00"
 */
export function minutesTest(date) {
	var sdate1 = new Date(date);
	sdate1.setMinutes(sdate1.getMinutes() + 30);
	var now = sdate1.getFullYear() + '-' + 
			  ((sdate1.getMonth() + 1) < 10 ? '0' + (sdate1.getMonth() + 1) : (sdate1.getMonth() + 1)) +
			  '-' + (sdate1.getDate() < 10 ? '0' + sdate1.getDate() : sdate1.getDate()) + ' ' + 
			  sdate1.getHours() + ":" +
			  (sdate1.getMinutes() < 10 ? '0' + sdate1.getMinutes() : sdate1.getMinutes());
	return now;
}

/**
 * 返回上、这、下个月的第一天日期 格式：2023-03-01
 * @param {Number} type: 可选值只有：-1 上个月、0 这个月、1 下个月
 */
export function getXmonthNoOne(type) {
	// type 0 是当天 -1 是上个月   1是下个月
	var now = new Date(); // 可以传值调式 now = new Date(2019,2,30); 今天是3月30号
	var year = now.getFullYear(); //getYear()+1900=getFullYear()
	var month = now.getMonth() + 1; //0-11表示1-12月
	if (parseInt(month) < 10) {
	  month = "0" + month;
	}
	now = year + "-" + month + "-" + "01"; // 如果取当月日期可直接 return 返回
	 
	var preMonth = parseInt(month) - 1;
	preMonth = preMonth < 10 ? "0" + preMonth : preMonth; // 获取上个月的值
	var nextMonth = parseInt(month) + 1;
	nextMonth = nextMonth < 10 ? "0" + nextMonth : nextMonth; // 获取下个月个月的值
	 
	if (parseInt(month) == 1 && type == -1) {
	  //如果是1月份，要上个月 ，则取上一年的12月份
	  return parseInt(year) - 1 + "-12-" + "01";
	} else if (parseInt(month) == 12 && type == 1) {
	  // 如果是12月，要下个月，取下一年的1月
	  return parseInt(year) + 1 + "-01-" + "01";
	}
	 
	if (type == -1) {
	  return year + "-" + preMonth + "-" + "01";
	} else if (type == 1) {
	  return year + "-" + nextMonth + "-" + "01";
	} else if (type == 0) {
	  return now;
	}
}

export function formatRichText(html) { // 富文本内容格式化
	if(!html) return '';
	return html && html.replace(/<img[^>]*>/gi, function(match, capture) { // 查找所有的 img 元素
		return match.replace(/style=".*"/gi, '').replace(/style='.*'/gi, '') // 删除找到的所有 img 元素中的 style 属性
	}).replace(/\<img/gi, '<img style="width:100%;"') // 对 img 元素增加 style 属性，并设置宽度为 100%
}
